<?php
declare (strict_types = 1);

namespace app\admin\controller;

use \think\facade\Db;
use \think\facade\View;

class Index
{
    public function index()
    {
        //助手函数  -  渲染视图
        return view();
//
//        return View::fetch();
    }

    public function demo()
    {
        //url生成
        //{:url('应用/控制器/方法')}
        //(a/b/c)代表('应用/控制器/方法')} 写一个代表方法 俩个代表控制器/方法 三个代表('应用/控制器/方法')
//        echo \think\facade\Route::buildUrl('');//生成url链接
//        echo \think\facade\Route::buildUrl('',['id'=>1,'name'=>"芜湖"]);//第二个参数代表地址栏参数

//        echo \think\facade\Route::buildUrl('')->domain('www');//生成域名
//        echo \think\facade\Route::buildUrl('')->suffix('www');//生成伪静态后缀

        //    [助手函数 url](简单写法)
//        echo url('a/b/c',['id'=>1])->domain('www')->suffix('www');
        //↑ http://www.tp31/index.php/a/b/c.www?id=1
        //↑ 第一种写法 (domain 与 suffix 没有先后顺序)

//        echo url('a/b/c',['id'=>1],'php','www');
        //↑ http://www.tp31/index.php/a/b/c.php?id=1
        //↑ 第二种写法 (domain 与 suffix 没有先后顺序)


        //[模板表达式]
//        $name = '芜湖';
//        View::assign('string',$name);
//        //↑ 往html页传输内容,第一个值是往HTML页传输的名字,第二个是需要传输的内容
//
//        return view();
        //一维数组赋值
//        $arr=[
//            'name'=>"起飞",
//            'age'=>45
//
//        ];
//        View::assign('arr',$arr);
        //二维数组
//        $arr1=[
//            [
//            'name'=>"起飞2",
//            'age'=>455
//            ],
//        [
//            'name'=>"起飞1",
//            'age'=>455
//        ]
//        ];
//        View::assign('arr1',$arr1);
        //对象赋值
        $obj=new \stdClass();
        $obj->name="起飞";
        $obj->sex="男";

        View::assign('obj',$obj);

        //批量赋值

        $obj1=[
            'name'=>'叛乱分子',
            'sex'=>'男'
        ];
        View::assign($obj1);


        //循环标签
        //volist
        //name 循环数据源
        //id   循环变量
        //$key 索引
        //key  计数值
        //mod  范围循环计数
        //offest起始位置
        //length 长度
        //empty 空值输出的内容

        //foreach
        //name  循环数据源
        //item  循环变量
        //$key 索引
        //empty 空值输出的内容
        $list=[
            [
                "id"=>4,
                "name"=>'芜湖'
            ],
            [
            "id"=>5,
            "name"=>'芜湖'
            ],
            [
                "id"=>4,
                "name"=>'芜湖'
            ],
            [
                "id"=>5,
                "name"=>'芜湖'
            ],[
                "id"=>4,
                "name"=>'芜湖'
            ],
            [
                "id"=>5,
                "name"=>'芜湖'
            ],[
                "id"=>4,
                "name"=>'芜湖'
            ],
            [
                "id"=>5,
                "name"=>'芜湖'
            ],
            [
            "id"=>4,
            "name"=>'芜湖'
        ]

        ];

        View::assign('list',$list);

        return view();

    }

    public function fan()
    {
        //比较标签
        $num=1;
        View::assign('num',$num);


        $str=time();
        View::assign('str',$str);
        return view();

        //判断标签
        //SWITCH标签
        //if标签
        //{if 表达式}value1
        //{elseif 表达式 /}value2
        //{else /}value3
        //{/if}


        //三元运算
        $sty=1;
        View::assign('sty',$sty);
        return view();

    }

    public function getInfo()
    {
        //请求类   Request
        //接参 get/post/param/file/all
        //param可以接到get 或post传的值 pathinfo
        //接图片用file

        //接全部get值的方法
        //$get=\think\facade\Request::get();

        //参数('变量名/变量修饰'，'默认值','过滤函数')(过滤函数：删除反斜杠,把字符转换为 HTML 实体,把预定义的字符 "<" （小于）和 ">" （大于）转换为 HTML 实体,剥去字符串中的 HTML 标签)
        $id=\think\facade\Request::post('id/b','默认值','stripslashes,htmlentities,htmlspecialchars,strip_tags');
        echo "<pre>";
        print_r($id);
        echo "</pre>";
//        echo $id=\think\facade\Request::post("name");
        $img=\think\facade\Request::file('img');
        echo "<pre>";
        print_r($img);
        echo "</pre>";
        //简便写法input('get.');
        return view();

        //连接数据库
    }

    public function cha()
    {
        //Db查询*******************
        //find sesect
        $sql= Db::table('ecm_user')->find(1);

        //返回一维数组
//        $sql1=Db::table('ecm_user')->where('id','=','1')->find();

        //返回结果集对象
//        $sql2=Db::table('ecm_user')->select()->toArray();
        //结果转化成数组
//        $arr=$sql2->toArray();
        //
//      $name=Db::table('ecm_user')->where('id','=','2')->value('uname');
//        $name=Db::table('ecm_user')->column('uname');

        //表达式查询*****************
        //比较符(=,>=,<>,<=,>,<)
//        $sql1=Db::table('ecm_user')->where('id','>=','1')->select();
        //模糊搜索（like/notlike）
//        $sql1=Db::table('ecm_user')->where('uname','like','%空%')->select();
        //范围查询(in/notin/between/notbentween)
//        $sql1=Db::table('ecm_user')->where('id','notin','1,2,3')->select();
//        $sql1=Db::table('ecm_user')->where('id','notbetween','1,2,3')->select();

        //null\notnull
//        $sql1=Db::table('ecm_user')->where('openid',null)->select();
        //时间查询(between time,> time,>=time,<=time,<time)
//        $sql1 = Db::table('ecm_user')->where('openid','between time',['2000-1-1','2021-1-1'])->select();

//        $sql1 = Db::table('ecm_user')->where('addtime','> time','2000-1-1')->select();
        //find in set
//        $sql1 = Db::table('ecm_user')->where(''head_img,'find in set','3')


    }

    public function getUser()
    {
        $key='唐';
//        $sex=1;

        $where=[];
        if($key <>'')                    $where[]=['uname','like','%'.$key.'%'];
        if (isset($sex) && $sex <> '')   $where[]=['sex','=',$sex];
        $list=Db::name('user')
                  ->where($where)
                  ->select();
        echo "<pre>";
        print_r($list);
        echo "</pre>";
    }

    public function zuo()
    {
        //链式操作
        //[table] 参数 表全名 name 去表前缀
        //Db::table('ecm_user')->select();
        //Db::table('ecm_user a')->select();     起别名
        //Db::table('ecm_user'=>'a')->select();  起别名

        //[alias] 表别名
        //Db::table('ecm_user')>alias('a')->select();
        //[order]排序  默认为正序
        //Db::table('ecm_user')->order('id','desc')->select();  倒叙
        //Db::table('ecm_user')->order('id desc')->select();  倒叙
        //Db::table('ecm_user')->order('id' =>'desc')->select();  倒叙

        //Db::table('ecm_user')->orderRand()->select();  随机排序 每次都随机
        //Db::table('ecm_user')->orderRaw('rand(id)')->select(); 随机排序  随机一次固定随机

        //[join] 链表
//         $list=Db::name('user')
//                   ->alias('a')
//                    ->join('oreder o','a.id=o.uid')
//                    ->select();

        //[field] 查询字段
//        $list=Db::name('user')->field('id ,uname')->select();字符串方式
//        $list=Db::name('user')->field(['id','uname'])->select();数组方式写也好使

//        $list=Db::name('user')->field('id ids ,uname name')->select();  起别名
//        $list=Db::name('user')->field(true)->select();    显示查询
//        $list=Db::name('user')->withoutField('id ,uname')->select();  //排除字段查询 写啥排除啥

        //[limit/page]
//        $list=Db::name('user')->limit(2)->select();



        //[group/having]
        //[group/having]  查询字段
        $arr = Db::name('user')->group('sex')->having('count(id)>2')->select();
        echo "<pre>";
        print_r($arr);
        echo "</pre>";
//
    }
}


